Skip to content
last updated: {{ git_revision_date_localized }}

Windows 11 ARM on OPi5 Banner

Windows 11 ARM on OPi5

This guide describes how to install the latest Windows 11 ARM image on an Orange Pi 5. Keep in mind this is still in development and individual results may vary.

After using this solution for two months, I have found it to be unstable with BSDO at least once a day. It does work well if you want to test Windows on an ARM64 processor.

Hardware Requirements

hardware

Install UEFI firmware to SPI NOR flash

Reference Guide (see Flash with Windows PC in section 4, option 2)

Download

Write firmware

  • Open RKDevTool as an Administrator

  • Right-click in a blank space and select Load Config

    • Select rock-5b-spinor.cfg
    • Click empty box under … to select file

      Note

      • Rk3588_spl_loader_v#.##.###.bin for Loader
      • orangepi-5_UEFI_Release_v#.##.#.img for Image
    • Check Write by Address

    • Connect OPi5 from USB-C port to PC
  • Hold down MARKROM button and connect USB-C power, wait a few seconds and release button

    MaskKey

  • Status in RKDevTool should change from "No Devices Found" to "Found One MASKROM Device"

  • Click Run

  • Process is done when "Download image OK" is displayed in the logging pane.

    Note

    OPi5 will restarts by itself and exits MASKROM mode

  • Disconnect from PC

Download Drivers

Driver download posts are pinned in the #development discord channel

  • Download RK3588 signed driver zip file (rk3588_drivers-v2.zip)

  • Download updated storage driver (pdb, inf, and sys) to a folder named stornvme_storahci

  • Remove _ncc from file names (example rename stornvme_ncc.sys to stornvme.sys)

  • Edit all inf files in notepad and remove _ncc from file names

  • Add stornvme_storahci folder to rk3588_drivers-v2.zip file using 7-Zip

Download Windows 11 arm64 release package

  • Open uupdump

  • Windows 11 23H2 or earlier: From the menu, select Windows 11 > 23H2.

  • Windows 11 24H2 or later: Click arm64 button, I typically choose the latest public release build

    uupdump-arch

    Warning

    Currently 24H2 does not work and will BSOD with DPC_Watchdog_Violation. Steps provided in case it gets fixed at some point.

  • Select latest Windows 11 update

    uupdump-update

  • Choose language and click Next

  • Uncheck Windows Home and click Next

  • Select Download and convert to ISO

  • Click Create download package

  • Extract package to a folder that does not contain spaces in the path. Example: C:\ISO

  • Extract rk3588_drivers-v2.zip to C:\ISO\Drivers\ALL

  • Edit C:\ISO\ConvertConfig.ini with Notepad

    AddUpdates   =1
    AddDrivers   =1
    Drv_Source   =\Drivers
    

Generate Windows ISO

  • Run uup_download_windows.cmd

  • Wait for files to be downloaded, processed, and ISO generated. Takes ~60-minutes. 11:37

Install Windows onto NVMe Drive using Imager

  • Windows 11 23H2 or earlier: Download and extract v2.3.1 or later of the imager

    Note

    Ignore that it says Raspberry. This was originally built for Raspberry Pi devices, but development has been extended to support Orange Pi devices.

  • Windows 11 24H2 or later: Download and extract v2.3.0 of the imager

    Warning

    Currently 24H2 does not work and will BSOD with DPC_Watchdog_Violation. Steps provided in case it gets fixed at some point.

  • Plug the NVMe drive into your PC

  • Run WoR.exe as an Administrator

    • Set wizard mode = Select show all options
    • Select storage device and device type = Raspberry Pi 2/3
    • Select ISO image and Windows Pro build
    • For drivers, select the downloaded rk3588_drivers-v2.zip file
    • For UEFI firmware, leave use the latest firmware. This doesn't really apply to OPi5.
    • Leave defaults for configuration
    • Click Install
    • Wait for the Windows offline install to complete. Takes ~10 minutes
    • Click Finish

Update Drivers

  • Open command prompt as an Administrator and run:

    setlocal
    REM Substitute variables for the actual location. 
    SET Drivers=C:\ISO\drivers\ALL\stornvme_storahci
    SET NVMe=U:
    
    takeown /f %NVMe%\Windows\system32\drivers\stornvme.sys
    icacls %NVMe%\Windows\system32\drivers\stornvme.sys /grant %username%:F
    Ren %NVMe%\Windows\system32\drivers\stornvme.sys stornvme.sys.orig
    Copy %Drivers%\stornvme.sys %NVMe%\Windows\system32\drivers /Y
    
    takeown /f %NVMe%\Windows\system32\drivers\storahci.sys
    icacls %NVMe%\Windows\system32\drivers\storahci.sys /grant %username%:F
    Ren %NVMe%\Windows\system32\drivers\storahci.sys storahci.sys.orig
    Copy %Drivers%\storahci.sys %NVMe%\Windows\system32\drivers /Y
    
    takeown /f %NVMe%\Windows\system32\drivers\usbehci.sys
    icacls %NVMe%\Windows\system32\drivers\usbehci.sys /grant %username%:F
    Ren %NVMe%\Windows\system32\drivers\usbehci.sys usbehci.sys.orig
    Copy %Drivers%\usbehci.sys %NVMe%\Windows\system32\drivers /Y
    endlocal
    

Windows Setup

  • Install NVMe drive into the bottom of your OPi5

  • Power-on OPi5

  • Increase CPU base speed

    • Press ESC to get BIOS screen

    • Select Device Manager > Rockchip Platform Configuration > CPU Performance

    • Set clock preset to maximum

    • Press F10 > Y > ESC > ESC > ESC

    • Select Boot Manager > Windows Boot Manager

  • Wait for Windows to finish setup. Takes 30+ minutes.

    Note

    System may be slow while .NET Optimization runs

  • Complete the OOBE process

Known Issues

  • Windows 11 24H2 or later is not supported.

  • Random BSOD with DPC_Watchdog error. Typically happens under heavy load when the system has been powered on for some time. Scheduling a restart for once a day seems to help.

  • BSOD when booting. This could be a sign that the storage driver (stornvme.sys) has been overwritten by Windows\Windows Update. Follow the Update Drivers section above to fix.

  • When shutting down, device will not actually power off. System may also BSOD during shutdown.

  • When booting the Windows loading circle freezes and Windows never loads. After a few power cycles it seems to clears.

Thank you

This guide wouldn't have been possible without Mario Bălănică, the developers, and the community that supports the Windows on R project.